﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using AutomationTools.Procedimentos.Leitura;
using AutomationTools;

namespace AutomationToolsSample
{
    public partial class Form8 : Form
    {
        public Form8()
        {
            InitializeComponent();
        }

        private void Form8_Load(object sender, EventArgs e)
        {
            ProcedimentoController pc = new ProcedimentoController(new IProcedimento[]{
                new Excel<Notas>(@"Recursos\notas.xlsx", false)
            });
            DateTime ini = DateTime.Now;
            var ret = (Notas)pc.ExecutarProcedimentos();
            TimeSpan ts = DateTime.Now - ini;


            StringBuilder sb = new StringBuilder();
            sb.AppendLine("Tempo de Load: " + ts.ToString());
            sb.AppendLine("Registros carregados: " + ret.Lista.Length);
            sb.AppendLine("--------------------------------------");
            sb.AppendLine("Matéria: " + ret.Materia);
            sb.AppendLine("Qtd Alunos: " + ret.QtdAlunos);
            sb.AppendLine("--------------------------------------");
            sb.AppendLine("Nome             Nota");
            foreach (var item in ret.Lista)
            {
                sb.AppendLine(item.Nome + "          " + item.Nota);
            }
            label1.Text = sb.ToString();
        }
    }

    [CanExcelParse(0, IsTable=false)]
    public class Notas{
        [ExcelParse("B1")]
        public string Materia { get; set; }

        [ExcelParse("B2")]
        public int QtdAlunos { get; set; }

        [ExcelParse("A4", "M*", IsArray=true)]
        public Alunos[] Lista { get; set; }

        [CanExcelParse]
        public class Alunos
        {
            [ExcelParse(0)]
            public string Nome { get; set; }
            [ExcelParse(1)]
            public decimal Nota { get; set; }
        }
    }

    
}
